package cn.funeralobjects.ams.web.extension.config;

import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.List;

/**
 * ams 的自动配置
 *
 * @author FuneralObjects
 * Create date: 2020/5/28 6:52 PM
 */
@Data
@Accessors(chain = true)
@ConfigurationProperties(prefix = "funeralobjects.ams")
public class AmsProperties {

    /**
     * 是否自动注册
     */
    private Boolean register = false;
    /**
     * 需要注册的产品
     */
    private List<RegisterProduct> products;
    /**
     * 需要注册区域
     */
    private List<RegisterRegion> regions;


    /**
     * 用于自动注册的产品
     */
    @Data
    @Accessors(chain = true)
    public static class RegisterProduct {
        /**
         * 编码
         */
        private String code;
        /**
         * 说明
         */
        private String description;
        /**
         * 该产品所拥有的api
         */
        private List<RegisterProductApi> apis;
    }

    /**
     * 用于自动注册的区域
     */
    @Data
    @Accessors(chain = true)
    public static class RegisterRegion {
        /**
         * 阿里区域编码
         */
        private String regionId;
        /**
         * 阿里区域名称
         */
        private String regionName;
        /**
         * 所在城市名称
         */
        private String cityName;
        /**
         * 区域
         */
        private String area;
    }


    @Data
    @Accessors(chain = true)
    public static class RegisterProductApi {
        /**
         * 编码
         */
        private String code;
        /**
         * 名称
         */
        private String name;
        /**
         * 执行方法
         */
        private String action;
        /**
         * 版本号
         */
        private String version;
        /**
         * 请求方式
         */
        private String method;
    }

}
